import request from "@/utils/request";

const TCM_BASE_URL = "/api/v1/tcms";

const TcmAPI = {
  /** 获取中医处方分页数据 */
  getPage(queryParams?: TcmPageQuery) {
    return request<any, PageResult<TcmPageVO[]>>({
      url: `${TCM_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },

  /** 获取中医处方分页数据 */
  getAriclePage(queryParams?: TcmAriticlePageQuery) {
    return request<any, PageResult<TcmPageVO[]>>({
      url: `${TCM_BASE_URL}/article`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取中医处方表单数据
   *
   * @param id TcmID
   * @returns Tcm表单数据
   */
  getFormData(id: number) {
    return request<any, TcmForm>({
      url: `${TCM_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /** 添加中医处方*/
  add(data: TcmForm) {
    return request({
      url: `${TCM_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新中医处方
   *
   * @param id TcmID
   * @param data Tcm表单数据
   */
  update(id: number, data: TcmForm) {
    return request({
      url: `${TCM_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除中医处方，多个以英文逗号(,)分割
   *
   * @param ids 中医处方ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${TCM_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
  /**
   * 拆分中医处方
   *
   * @param data TcmComposition
   */
  splitTcm(data: TcmComposition) {
    return request({
      url: `${TCM_BASE_URL}/split`,
      method: "put",
      data: data,
    });
  },

  /**
   * 取消拆分
   *
   * @param ids TcmID
   */
  cancelTcm(ids: string) {
    return request({
      url: `${TCM_BASE_URL}/${ids}/cancel`,
      method: "put",
    });
  },

  /**
   * 共享中医处方
   *
   * @param ids TcmID
   */
  sharedTcm(ids: string) {
    return request({
      url: `${TCM_BASE_URL}/${ids}/shared`,
      method: "put",
    });
  },
};

export default TcmAPI;

export interface TcmAriticlePageQuery extends PageQuery {
  /** 文章Id */
  articleId: number;
}

/** 中医处方分页查询参数 */
export interface TcmPageQuery extends PageQuery {
  /** 搜索类型 */
  searchType: number;
  /** 搜索词 */
  searchWords: string;
  /** 名称 */
  name: string;
  /** 加减 */
  addSubtract: string;
  /** 病名 */
  disease: string;
  /** 症状 */
  symptom: string;
  /** 对证 */
  syndrome: string;
  /** 药效 */
  physiologica: string;
  /** 病因病机 */
  etiolog: string;
  /** 原始文本 */
  originalText: string;
  /** 组成 */
  composition: string;
  /** 查询范围 */
  scope: number;
  /** 是否共享 */
  isShared: number;
  /** 用户 */
  username: string;
}

export interface TcmComposition {
  /** 文章编号Id */
  srtComposition?: string;
}
/** 中医处方表单对象 */
export interface TcmForm {
  /** 编号 */
  id?: number;
  /** 文章编号Id */
  articleId?: number;
  /** 名称 */
  name?: string;
  /** 组成 */
  composition?: string;
  /** 加减 */
  addSubtract?: string;
  /** 西医病名 */
  disease?: string;
  /** 中医病名 */
  diseaseCn?: string;
  /** 症状 */
  symptom?: string;
  /** 对证 */
  syndrome?: string;
  /** 药效 */
  physiologica?: string;
  /** 病因病机 */
  etiolog?: string;
  /** 原始文本 */
  originalText?: string;
  /** 已分解组成 */
  isSplited?: number;
}

/** 中医处方分页对象 */
export interface TcmPageVO {
  /** 编号 */
  id?: number;
  /** 文章编号Id */
  articleId?: number;
  /** 名称 */
  name?: string;
  /** 组成 */
  composition?: string;
  /** 加减 */
  addSubtract?: string;
  /** 西医病名 */
  disease?: string;
  /** 中医病名 */
  diseaseCn?: string;
  /** 症状 */
  symptom?: string;
  /** 对证 */
  syndrome?: string;
  /** 药效 */
  physiologica?: string;
  /** 病因病机 */
  etiolog?: string;
  /** 原始文本 */
  originalText?: string;
  /** 已分解组成 */
  isSplited?: number;
  /** 文章标题 */
  titleCn?: string;
}
